package org.budo.cmbc.sdk;

import org.budo.cmbc.sdk.entity.B2eElectNoteDownLoadRequest;
import org.budo.cmbc.sdk.entity.B2eElectNoteDownLoadResponse;
import org.budo.cmbc.sdk.entity.B2eElectNoteQryRequest;
import org.budo.cmbc.sdk.entity.B2eElectNoteQryResponse;
import org.budo.cmbc.sdk.entity.BatchCostReimbRequest;
import org.budo.cmbc.sdk.entity.BatchCostReimbResponse;
import org.budo.cmbc.sdk.entity.BatchTransferXferRequest;
import org.budo.cmbc.sdk.entity.BatchTransferXferResponse;
import org.budo.cmbc.sdk.entity.CostReimbRequest;
import org.budo.cmbc.sdk.entity.CostReimbResponse;
import org.budo.cmbc.sdk.entity.QryAllBankCodeRequest;
import org.budo.cmbc.sdk.entity.QryAllBankCodeResponse;
import org.budo.cmbc.sdk.entity.QryBalNewRequest;
import org.budo.cmbc.sdk.entity.QryBalNewResponse;
import org.budo.cmbc.sdk.entity.QryBalRequest;
import org.budo.cmbc.sdk.entity.QryBalResponse;
import org.budo.cmbc.sdk.entity.QryBatchCostReimbRequest;
import org.budo.cmbc.sdk.entity.QryBatchCostReimbResponse;
import org.budo.cmbc.sdk.entity.QryBatchXferRequest;
import org.budo.cmbc.sdk.entity.QryBatchXferResponse;
import org.budo.cmbc.sdk.entity.QryDtlRequest;
import org.budo.cmbc.sdk.entity.QryDtlResponse;
import org.budo.cmbc.sdk.entity.QryOthBankAgentPayResRequest;
import org.budo.cmbc.sdk.entity.QryOthBankAgentPayResResponse;
import org.budo.cmbc.sdk.entity.QryOtherBankAgentActBalRequest;
import org.budo.cmbc.sdk.entity.QryOtherBankAgentActBalResponse;
import org.budo.cmbc.sdk.entity.XferRequest;
import org.budo.cmbc.sdk.entity.XferResponse;
import org.budo.cmbc.sdk.entity.OtherBankAgentPayRequest;
import org.budo.cmbc.sdk.entity.OtherBankAgentPayResponse;

/**
 * 银企直连
 * 
 * @author lmw
 */
public interface CmbcSdk {
    String getAcntNo();

    QryBatchXferResponse qryBatchXfer(QryBatchXferRequest request);

    BatchTransferXferResponse batchTransferXfer(BatchTransferXferRequest request);

    /**
     * 查询余额
     */
    QryBalResponse qryBal(QryBalRequest request);

    /**
     * 新版查询余额
     */
    QryBalNewResponse qryBalNew(QryBalNewRequest request);

    /**
     * 交易明细查询
     */
    QryDtlResponse qryDtl(QryDtlRequest request);

    XferResponse Xfer(XferRequest request);

    void detailLoad();

    void qryXfer();

    void batchXfer();

    void topXfer();

    /**
     * 4.10 单笔费用报销 企业财务室
     */
    CostReimbResponse CostReimb(CostReimbRequest request);

    void CostReimbGroup();

    /**
     * 4.12 批量费用报销 代发工资
     */
    BatchCostReimbResponse batchCostReimb(BatchCostReimbRequest request);

    /**
     * 4.13 批量费用报销查询
     */
    QryBatchCostReimbResponse qryBatchCostReimb(QryBatchCostReimbRequest request);

    /**
     * 4.37 他行账户代发(otherBankAgentPay)
     */
    OtherBankAgentPayResponse otherBankAgentPay(OtherBankAgentPayRequest request);

    /**
     * 4.38 他行代发工资查询(qryOthBankAgentPayRes)
     */
    QryOthBankAgentPayResResponse qryOthBankAgentPayRes(QryOthBankAgentPayResRequest request);

    /**
     * 4.36 他行代发账户资产金额查询(qryOtherBankAgentActBal)
     */
    QryOtherBankAgentActBalResponse qryOtherBankAgentActBal(QryOtherBankAgentActBalRequest request);

    void qryFixAcct();

    void qryEnsuAcct();

    void qryAcctList();

    void EnXfer();

    void queryRegularList();

    void regularD2B();

    void QueryRegularB2D();

    void DepositNotice();

    void QueryNotice();

    void xjAcctAmt();

    void zdShanghai();

    void zdShenzhen();

    void Epay();

    void EntFlowQryB2e();

    void EntNoticeQryB2e();

    QryAllBankCodeResponse qryAllBankCode(QryAllBankCodeRequest request);

    void InterestSettlementQryB2e();

    B2eElectNoteQryResponse b2eElectNoteQry(B2eElectNoteQryRequest request);

    B2eElectNoteDownLoadResponse b2eElectNoteDownLoad(B2eElectNoteDownLoadRequest request);

    void depositAccountDetail();
}
